﻿#!/bin/sh

#################################################
###  基础表:       model层来源信息表
###  维护人:
###  数据源:

###  导入方式:      全量导入
###  运行命令:      sh model_table_data_source.sh [&]
###  结果目标:      model.model_table_data_source
#################################################
cd `dirname $0`
source ../../../config.sh
exec_dir model_table_data_source

HIVE_DB=app
HIVE_TABLE=model_table_data_source

function create_table(){

    hadoop fs -rm -r ${BASE_HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE} || :

	hive -e "DROP TABLE IF EXISTS ${HIVE_DB}.${HIVE_TABLE};"

	hive -e "CREATE EXTERNAL TABLE IF NOT EXISTS ${HIVE_DB}.${HIVE_TABLE}(
            model_table_name STRING COMMENT 'model表',
            raw_data_source STRING COMMENT 'raw数据源',
            create_time STRING COMMENT '创建时间'
            )COMMENT 'model层来源信息表'
            ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
            LOCATION '${BASE_HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE}'
          "
          fn_log "创建表--model来源信息表:${HIVE_DB}.${HIVE_TABLE}"
}

function import_table(){
    ###################################################
    ###加载本地数据
    ###################################################

    hive -e "LOAD DATA LOCAL INPATH '../../../csv/model_table_data_source.csv' INTO TABLE ${HIVE_DB}.${HIVE_TABLE};"

    fn_log "加载本地数据到${HIVE_DB}.${HIVE_TABLE}"

    hive -e "
           INSERT OVERWRITE table ${HIVE_DB}.${HIVE_TABLE}
            select
            a.model_table_name,
            a.raw_data_source,
            FROM_UNIXTIME(UNIX_TIMESTAMP()) AS create_time
            from
            (
            select
            a.model_table_name,
            tmp as raw_data_source
            from ${HIVE_DB}.${HIVE_TABLE} a
            lateral view explode(split(raw_data_source,'/')) num as tmp
            ) a
           "

		    fn_log "导入数据--model层数据来源信息表 :${HIVE_DB}.${HIVE_TABLE}"
}

create_table
import_table